ASP.Net Core Routing এবং Middleware

Microsoft Technologies - ডট নেট কোর (Dot.Net Core) ASP.Net Core অ্যাপ্লিকেশন তৈরি (Creating an ASP.Net Core Application) |
223
223

ASP.Net Core অ্যাপ্লিকেশনে Routing এবং Middleware দুটি অত্যন্ত গুরুত্বপূর্ণ ধারণা, যা HTTP রিকোয়েস্ট প্রক্রিয়ার নিয়ন্ত্রণ এবং অ্যাপ্লিকেশন লজিক পরিচালনা করে। এই দুটি প্রযুক্তি .NET Core অ্যাপ্লিকেশনের ফ্লেক্সিবিলিটি এবং শক্তি বাড়াতে সহায়তা করে।


Routing কী এবং কেন প্রয়োজন?

Routing হল একটি প্রক্রিয়া যার মাধ্যমে অ্যাপ্লিকেশনটি একটি নির্দিষ্ট URL প্যাটার্নের ভিত্তিতে রিকোয়েস্ট প্রক্রিয়া করে এবং তা নির্দিষ্ট কন্ট্রোলার বা অ্যাকশনের সাথে যুক্ত করে। এটি HTTP রিকোয়েস্ট এর পাথ এবং মেথড (GET, POST, ইত্যাদি) অনুযায়ী অ্যাপ্লিকেশনটির ভিন্ন ভিন্ন অংশে রিকোয়েস্ট পাঠানোর কাজ করে।

ASP.Net Core-এ রাউটিং URL Patterns এবং Route Handlers এর মধ্যে সম্পর্ক নির্ধারণ করে। সাধারণত, রাউটিং প্যাটার্নগুলি কন্ট্রোলার এবং অ্যাকশনের মাধ্যমে নির্দিষ্ট করা হয়। উদাহরণস্বরূপ, যদি কোনো ইউজার /home/index URL এ প্রবেশ করে, তবে সেটি HomeController এর Index অ্যাকশন মেথডকে কল করবে।


ASP.Net Core Routing কনফিগার করা

ASP.Net Core-এ রাউটিং কনফিগার করা হয় Startup.cs ফাইলের মধ্যে, যেখানে Configure মেথডে রাউটিং সিস্টেমের কনফিগারেশন করা হয়। সাধারণভাবে, UseRouting() এবং UseEndpoints() মেথড ব্যবহার করা হয়।

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting(); // রাউটিং সিস্টেম সক্রিয় করা

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}"); // ডিফল্ট রাউটিং প্যাটার্ন
    });
}

এই কনফিগারেশনে {controller=Home} নির্দেশ করে যে, যদি কোনো কন্ট্রোলার না দেওয়া হয় তবে HomeController ব্যবহার হবে। {action=Index} নির্দেশ করে যে, যদি কোনো অ্যাকশন না দেওয়া হয় তবে Index অ্যাকশন কল হবে। {id?} অংশটি অপশনাল প্যারামিটার নির্দেশ করে।


Attribute Routing

ASP.Net Core-এ Attribute Routing ব্যবহারের মাধ্যমে URL রাউটিং আরো সহজ এবং কাস্টমাইজড করা যায়। এটি অ্যাকশনে সরাসরি URL প্যাটার্ন অ্যাট্রিবিউট হিসেবে যুক্ত করা যায়, যা আরও বেশি ফ্লেক্সিবিলিটি প্রদান করে। উদাহরণস্বরূপ:

[Route("home")]
public class HomeController : Controller
{
    [Route("index")]
    public IActionResult Index()
    {
        return View();
    }

    [Route("about")]
    public IActionResult About()
    {
        return View();
    }
}

এই কন্ট্রোলারে /home/index এবং /home/about URL পাথের জন্য আলাদা রাউট তৈরি করা হয়েছে।


Middleware কী এবং কেন প্রয়োজন?

Middleware হল একটি প্রোগ্রামাল কম্পোনেন্ট যা HTTP রিকোয়েস্ট এবং রেসপন্সের মধ্যে চলে। এটি পিপলাইনে বিভিন্ন ধাপে কাজ করতে পারে, যেমন রিকোয়েস্ট চেক করা, রেসপন্স মডিফাই করা, বা লগিং, অথেনটিকেশন, অথরাইজেশন প্রভৃতি কাজ করা। ASP.Net Core অ্যাপ্লিকেশনটি একটি মিডলওয়্যার পিপলাইনে চলে যেখানে একের পর এক মিডলওয়্যার কম্পোনেন্ট রিকোয়েস্ট প্রক্রিয়া করে।

ASP.Net Core-এ Middleware সাধারণত HTTP রিকোয়েস্টের শুরুতে চলে এবং পরবর্তী মিডলওয়্যারের কাছে রিকোয়েস্টটি পাঠানোর আগে এটি একটি কাজ সম্পাদন করে। বিভিন্ন মিডলওয়্যার যেমন অথেনটিকেশন, লগিং, সেশন হ্যান্ডলিং, কুকি ম্যানেজমেন্ট ইত্যাদি কাজ সম্পাদন করতে পারে।


Middleware পিপলাইন

ASP.Net Core অ্যাপ্লিকেশনে মিডলওয়্যার পিপলাইনটি সোজা লিনিয়ার চেইন হিসেবে কাজ করে। এর মধ্যে বিভিন্ন মিডলওয়্যার কম্পোনেন্ট থাকে, যেমন:

  • Authentication: ব্যবহারকারীর পরিচয় যাচাই করা।
  • Authorization: ব্যবহারকারীর অধিকার যাচাই করা।
  • Static Files: স্ট্যাটিক ফাইলগুলো (যেমন CSS, JS, ইমেজ) সেবা প্রদান করা।
  • Routing: রিকোয়েস্ট রাউটিং করা।
  • Endpoints: রাউটেড কন্ট্রোলার অ্যাকশন এবং ভিউ কল করা।
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseMiddleware<CustomMiddleware>(); // Custom Middleware প্রয়োগ করা

    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}

উপরের কোডে CustomMiddleware একটি কাস্টম মিডলওয়্যার, যা রিকোয়েস্ট পিপলাইনে যোগ করা হয়েছে।


Custom Middleware তৈরি

ASP.Net Core-এ কাস্টম মিডলওয়্যার তৈরি করা খুবই সহজ। একটি কাস্টম মিডলওয়্যার তৈরির জন্য আপনাকে একটি ক্লাস তৈরি করতে হবে, যা RequestDelegate ব্যবহার করবে।

public class CustomMiddleware
{
    private readonly RequestDelegate _next;

    public CustomMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        // রিকোয়েস্ট প্রক্রিয়া শুরু হওয়ার আগে কিছু কাজ করা
        Console.WriteLine("Custom Middleware - Request Start");

        await _next(context); // পরবর্তী মিডলওয়্যারে রিকোয়েস্ট পাঠানো

        // রিকোয়েস্ট প্রক্রিয়া শেষ হওয়ার পরে কিছু কাজ করা
        Console.WriteLine("Custom Middleware - Response End");
    }
}

এটি পরে Startup.cs-এর Configure মেথডে ইনজেক্ট করা হয়, যেখানে মিডলওয়্যার পিপলাইনে এটি যোগ করা হবে।


সারাংশ
ASP.Net Core-এ Routing এবং Middleware এর মাধ্যমে HTTP রিকোয়েস্টের প্রক্রিয়া অত্যন্ত ফ্লেক্সিবল এবং কাস্টমাইজড করা যায়। রাউটিং সিস্টেম URL প্যাটার্নের ভিত্তিতে রিকোয়েস্ট কন্ট্রোলার এবং অ্যাকশন মেথডে পাঠায়, এবং মিডলওয়্যার পিপলাইন রিকোয়েস্ট এবং রেসপন্স প্রক্রিয়া করে। কাস্টম মিডলওয়্যার তৈরি এবং রাউটিং কনফিগারেশনের মাধ্যমে আপনি অ্যাপ্লিকেশনকে আরও দক্ষ এবং সুনির্দিষ্টভাবে নিয়ন্ত্রণ করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion